package com.dys.processcontrol.circularstructure;

/**
 * @className: com.dys.processcontrol.circularstructure.WhileTest
 * @description: while循环
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/06/19 下午7:44
 */
public class WhileTest {

    public static void main(String[] args) {
        sum7();
    }

    /**
     * 功能：1+2+3+4+5
     * 缺点：定义的变量太多了
     */
    public static void sum() {
        // 1.定义变量
        int num1 = 1;
        int num2 = 2;
        int num3 = 3;
        int num4 = 4;
        int num5 = 5;
        // 2.定义一个求和变量，用来接收总和
        int sum = 0;
        sum += num1;
        sum += num2;
        sum += num3;
        sum += num4;
        sum += num5;
        // 3.输出
        System.out.println("sum = " + sum);
    }

    /**
     * 功能：1+2+3+4+5
     * 缺点：定义的变量太多了，进行优化
     * 代码依然存在缺点：重复写的代码太多了
     */
    public static void sum2() {
        // 1.定义变量
        int num = 1;
        // 2.定义一个求和变量，用来接收总和
        int sum = 0;
        sum += num;
        num++;
        sum += num;
        num++;
        sum += num;
        num++;
        sum += num;
        num++;
        sum += num;
        num++;
        // 3.输出
        System.out.println("sum = " + sum);
    }

    /**
     * 功能：求1+2+3+4+5的和
     * 总结：
     * 【1】循环作用：将部分代码重复执行。
     * 【2】循环只是提高了程序员编写代码的效率，但是底层执行的时候，依然是重复执行
     * 【3】循环四要素：1.条件初始化、2.条件判断、3.循环体、4.迭代
     * 始化谁，就判断谁，判断谁，就迭代谁
     * 执行过程：[1][2][3][4]、[2][3][4]、[2][3][4]、[2][3][4]、[2][3][4]
     */
    public static void sum3() {
        // 1.定义变量
        int num = 1;
        // 2.定义求和变量，用来接收总和
        int sum = 0;
        while (num <= 5) {
            sum += num;
            num++;
        }
        // 3.输出和
        System.out.println("sum = " + sum);
    }

    /**
     * 1+2+3+4+5+....100
     */
    public static void sum4() {
        // 1.条件初始化
        int num = 1;
        int sum = 0;
        // 2.条件判断
        while (num <= 100) {
            // 3.循环体
            sum += num;
            // 4.迭代
            num++;
        }

        // 5.输出
        System.out.println("1+2+3+...100的结果是 = " + sum);
    }

    /**
     * 2+4+6+8+...998+1000
     */
    public static void sum5() {
        // 1.条件初始化
        int num = 2;
        int sum = 0;
        // 2.条件判断
        while (num <= 1000) {
            // 3.循环体
            sum += num;
            // 4.迭代
            num += 2;
        }
        // 5.输出
        System.out.println("sum = " + sum);
    }

    /**
     * 5+10+15+...100
     */
    public static void sum6() {
        // 1.条件初始化
        int num = 5;
        // 声明求和变量
        int sum = 0;
        // 2.条件初始化
        while (num <= 100) {
            // 3.循环体
            sum += num;
            // 4.迭代
            num += 5;
        }
        // 5.输出
        System.out.println("sum = " + sum);
    }

    /**
     * 99+97+95+...5+3+1
     */
    public static void sum7() {
        int num = 99;
        int sum = 0;
        while (num >= 1) {
            sum += num;
            num -= 2;
        }
        System.out.println("sum = " + sum);
    }

    /**
     * 1*3*5*7*9*11*13
     */
    public static void accumulate() {
        // 1.条件初始化
        int num = 1;
        // 声明乘积变量
        int sum = 1;
        // 2.条件初始化
        while (num <= 13) {
            // 3.循环体
            sum *= num;
            // 4.迭代
            num += 2;
        }
        // 5.输出乘积
        System.out.println("乘积为: " + sum);
    }
}
